package 比较方法equals;
import java.util.Scanner;

//键盘输入一个字符串，判断字符串内有几个大写字母，有几个小写字母，有几个数字；
public class equalText1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串：");
        String arr = sc.next();

        //定义计数器；
        int bigcount = 0, smallcunt = 0, numcount = 0;

        //判断方法一：直接使用char字符自动转换的特点来判断
/*        for (int i = 0; i < arr.length(); i++) {
            char c = arr.charAt(i);
            //char字符在参与运算的时候会自动转换为int类型，所以不用所以刻意使用ASCLL码
            if(c>='a'&&c<='z'){
                smallcunt++;
            }else if (c>='A'&&c<='Z'){
                bigcount++;
            }else if (c>='0'&&c<='9'){
                numcount++;
            }
        }*/

        //判断方法二：使用ASCLL码来判断
        for (int i = 0; i < arr.length(); i++) {
            char c = arr.charAt(i);
            //使用ASCLL码来判断
            if (c >= 97 && c <= 123) {//小写字母
                smallcunt++;
            } else if (c >= 65 && c <= 91) {//大写字母
                bigcount++;
            } else if (c >= 48 && c <= 74) {//数字
                numcount++;
            }
        }

        //for循环判断，输出
        System.out.println("以下是for循环判断，输出:");
        System.out.println("小写字母有" + smallcunt + "个");
        System.out.println("大写字母有" + bigcount + "个");
        System.out.println("数字有" + numcount + "个" + "\n");

        //自定义方法输出
        System.out.println("以下是自定义方法判断，输出:");
        int a1 = smallcunt(arr);
        System.out.println("小写字母有" + a1 + "个");
        int a2 = bigcount(arr);
        System.out.println("大写字母有" + a2 + "个");
        int a3 = numcount(arr);
        System.out.println("数字有" + a3 + "个" + "\n");
    }

    //方法三：创建方法来封装判断代码
    public static int smallcunt(String arr) {
        int smallcunt = 0;
        for (int i = 0; i < arr.length(); i++) {
            char c = arr.charAt(i);
            //char字符在参与运算的时候会自动转换为int类型，所以不用所以刻意使用ASCLL码
            if (c >= 'a' && c <= 'z') {
                smallcunt++;
            }
        }
        return smallcunt;
    }

    public static int bigcount(String arr) {
        int bigcount = 0;
        for (int i = 0; i < arr.length(); i++) {
            char c = arr.charAt(i);
            //char字符在参与运算的时候会自动转换为int类型，所以不用所以刻意使用ASCLL码
            if (c >= 'A' && c <= 'Z') {
                bigcount++;
            }
        }
        return bigcount;
    }

    public static int numcount(String arr) {
        int numcount = 0;
        for (int i = 0; i < arr.length(); i++) {
            char c = arr.charAt(i);
            //char字符在参与运算的时候会自动转换为int类型，所以不用所以刻意使用ASCLL码
            if (c >= '0' && c <= '9') {
                numcount++;
            }
        }
        return numcount;
    }
}
